package com.sdy.resdir.biz.model;

import java.util.Date;
import java.util.List;
import java.util.Map;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.sdy.common.model.BaseModel;
import com.sdy.resdir.biz.vo.CatalogVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.sdy.common.utils.DateUtil;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 资源目录(总表)
 * </p>
 *
 * @author hyh
 * @since 2019-10-21
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@ApiModel(value = "RdResourceDir对象", description = "资源目录(总表)" )
public class RdResourceDir extends BaseModel {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @ApiModelProperty(value = "主键" )
    @TableId
    private Integer id;

    /**
     * dcsb平台id
     */
    @ApiModelProperty(value = "dcsb平台id" )
    private Integer resDcsbId;

    /**
     * 资源名称
     */
    @ApiModelProperty(value = "资源名称" )
    private String resName;

    /**
     * 唯一标识符
     */
    @ApiModelProperty(value = "唯一标识符" )
    private String resCode;

    /**
     * 资源类型(1.服务接口类 2.服务页面类 3.数据教换类)
     */
    @ApiModelProperty(value = "资源类型(1.服务接口类 2.服务页面类 3.数据教换类)" )
    private Integer resType;

    /**
     * 资源来源部门
     */
    @ApiModelProperty(value = "资源来源部门" )
    private String resGetSource;

    /**
     * 资源来源部门
     */
    @ApiModelProperty(value = "资源提供部门" )
    private String resSourceDept;

    /**
     * 资源来源部门ID
     */
    @ApiModelProperty(value = "资源提供部门ID" )
    private Integer resSourceDeptId;

    /**
     * 更新频率  实时1、每小时2、每天3、每月4、每季度5、每半年6、每年7、不更新8，不定时9
     */
    @ApiModelProperty(value = "更新频率  实时1、每小时2、每天3、每月4、每季度5、每半年6、每年7、不更新8，不定时9" )
    private Integer updateFrequency;

    /**
     * 创建日期
     */
    @ApiModelProperty(value = "创建日期" )
    @JsonFormat(pattern = DateUtil.DATETIME_FORMAT)
    private Date createTime;

    /**
     * 修改日期
     */
    @ApiModelProperty(value = "修改日期" )
    @JsonFormat(pattern = DateUtil.DATETIME_FORMAT)
    private Date modifyTime;

    /**
     * 发布时间
     */
    @ApiModelProperty(value = "发布时间" )
    @JsonFormat(pattern = DateUtil.DATETIME_FORMAT)
    private Date releaseTime;

    /**
     * 修改人id
     */
    @ApiModelProperty(value = "修改人id" )
    private Integer modifyUserId;

    /**
     * 归集情况(1.已上线 2.未上线)
     */
    @ApiModelProperty(value = "归集情况(1.已上线 2.未上线)" )
    private Integer collectionSituation;

    /**
     * 发布情况(0.未发布 1.已发布)
     */
    @ApiModelProperty(value = "发布情况(0.未发布 1.已发布)" )
    private Integer isRelease;

    /**
     * 是否失效（0 失效 1 有效）
     */
    @ApiModelProperty(value = "是否失效（0 失效 1 有效）" )
    private Integer isFail;

    /**
     * 所属系统名称
     */
    @ApiModelProperty(value = "所属系统名称" )
    private String ownApp;

    /**
     * 资源层级（1.省级 2.市级 3.区级）
     */
    @ApiModelProperty(value = "资源层级（1.省级 2.市级 3.区级）" )
    private Integer resLevel;

    /**
     * 资源状态（1.公开 2.受限）
     */
    @ApiModelProperty(value = "资源权限状态（1.公开 2.受限）" )
    private Integer resPower;

    /**
     * 资源状态（1.正常 2.异常）
     */
    @ApiModelProperty(value = "资源（1.正常 2.异常）" )
    private Integer resState;

    /**
     * 资源权限部门Id
     */
    @ApiModelProperty(value = "资源权限部门Id" )
    private Integer resPowerDeptId;

    /**
     * 资源权限部门名称
     */
    @ApiModelProperty(value = "资源权限部门名称" )
    private String resPowerDept;

    /**
     * 预选资源类型(1.服务接口类 2.服务页面类 3.数据交换类)
     */
    @ApiModelProperty(value = "预选资源类型(1.服务接口类 2.服务页面类 3.数据交换类)")
    private Integer preselectResType;

    /**
     * 服务地址
     */
    @ApiModelProperty(value = "服务地址")
    @TableField(exist = false)
    private String serviceAddress;

    /**
     * 资源说明
     */
    @ApiModelProperty(value = "资源说明")
    private String rdResourceDesc;

    /**
     * 资源申请部门
     */
    @ApiModelProperty(value = "资源申请部门")
    @TableField(exist = false)
    private String applyDeptName;

    /**
     * 资源附件
     */
    @ApiModelProperty(value = "资源附件")
    @TableField(exist = false)
    private String enclosure;

    @ApiModelProperty(value = "部门信息，资源信息，数据库信息")
    @TableField(exist = false)
    private List<Map<String, Object>> infos;

    /**
     * 资源基本信息及编目信息
     */
    @TableField(exist = false)
    CatalogVO catalogVO;

    @TableField(exist = false)
    List<RdDbDict> rdDbDictList;

    @TableField(exist = false)
    Integer applyDeptId;

    /**
     * 上传路径
     */
    @ApiModelProperty(value = "上传附件信息")
    @TableField(exist = false)
    private String uploadUrl;

}
